package br.com.paiva.container.controller;

import java.util.List;

import javax.faces.component.html.HtmlSelectOneMenu;
import javax.faces.model.SelectItem;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;

import br.com.paiva.container.Perfil;
import br.com.paiva.container.Usuario;
import br.com.paiva.container.enuns.StatusUsuario;
import br.com.paiva.container.service.PerfilService;
import br.com.paiva.container.service.UsuarioService;

@Controller
public class UsuarioController {	
	
	@Autowired
	@Qualifier("usuarioService")
	private UsuarioService usuarioService;
	
	@Autowired
	@Qualifier("perfilService")
	private PerfilService perfilService;	
	
	private Usuario usuario = new Usuario();
	
	private HtmlSelectOneMenu perfilSelecionado;	
	
	private String modalUsuario;	

	public String save(){		
		
		Long idPerfil = Long.parseLong(this.perfilSelecionado.getValue().toString());
		
		Perfil perfil = this.perfilService.getPerfilById(idPerfil);
		this.usuario.setPerfil(perfil);
		// this.usuario.setStatusUsuario(StatusUsuario.ATIVO);
		this.usuarioService.saveUsuario(this.usuario);
		this.modalUsuario = "Richfaces.showModalPanel('modalUsuario')";
		this.usuario=null;
		this.usuario = new Usuario();
		return "sucessoUsuario";
	}
	
	public String retrive(){
		
		Long id = this.usuario.getId();		
		this.usuario = this.usuarioService.getUsuarioById(id);
		return "sucessoUsuario";
	}
	
	public String delete(){		
		 
		this.usuario = this.usuarioService.getUsuarioById(this.usuario.getId());
		this.usuario.setStatusUsuario(StatusUsuario.DESATIVADO);
		this.usuarioService.saveUsuario(this.usuario);
		
		return "sucesso";
	}
	
	public List<Usuario> getUsuarios(){
		this.usuario = null;
		this.usuario = new Usuario();
		return this.usuarioService.list();
	}
	
	public List<SelectItem> getItemComboBox(){
		return this.perfilService.getPerfilItemCombo();
	}
	
	public String back(){
		this.usuario=null;
		this.usuario=new Usuario();
		return "back";
	}	

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public HtmlSelectOneMenu getPerfilSelecionado() {
		return perfilSelecionado;
	}

	public void setPerfilSelecionado(HtmlSelectOneMenu perfilSelecionado) {
		this.perfilSelecionado = perfilSelecionado;
	}

	public String getModalUsuario() {
		return modalUsuario;
	}

	public void setModalUsuario(String modalUsuario) {
		this.modalUsuario = modalUsuario;
	}	
		
}
